package demo.day11_CollectionAddpackage.List;

import java.util.*;

/**
 * @Auther: hjy(lc))
 * @Date: 2022/8/2-08-02-11:22
 * @Description：demo.day11_CollectionAddpackage.List  set集合
 *      无序 hashset没有排序功能
 *      元素不重复
 *      没有索引
 */
/*
TreeSet  有序  (存储的类型重写了Comparable类中的CompareTo方法) --》  因此存储的数据必须实现了CompareTo方法
            compareTo比较的是谁，根据判断的结果相等则去重
    存储的必须是同类型数据
    key值不能为空
 */
    /*
    TreeMap   默认按key值排序
     */
public class HashSet_use {
    public static void main(String[] args) {

        Set<Integer> set = new TreeSet<>(new integer());     //有序
//        for (int i = 1; i <= 10; i++) {
//            set.add(i);
//        }
        set.addAll(Arrays.asList(22,4,1,33,5,6,3,9,8));
        System.out.println(set);

    }
}
class integer implements Comparator {

//    @Override
//    public int compare(Object o1,Object o2) {
//        Integer num1 = (Integer) o1;
//        Integer num2 = (Integer) o2;
//        if(num1 % 2 == 0 && num2 % 2 == 0){   //都为偶数
//            return num2 - num1;
//        }else if(num1 % 2 == 0 && num2 % 2 != 0){
//            return 1;
//        }else if(num1 % 2 != 0 && num2 %2 == 0){
//            return -1;
//        }else{
//            return num1 - num2;
//        }
//    }
    @Override
    public int compare(Object o1,Object o2) {
        Integer num1 = (Integer) o1;
        Integer num2 = (Integer) o2;
        if(num1 % 2 == 0 && num2 % 2 == 0){   //都为偶数
            return num2 - num1;
        }else if(num1 % 2 == 0 && num2 % 2 != 0){
            return 1;
        }else if(num1 % 2 != 0 && num2 %2 == 0){
            return -1;
        }else{
            return num1 - num2;
        }
    }
}
